Laboratório 8: Rede Social com Grafos

O Objetivo 🎯

  • O Modelo: Uma rede social simples.
    • Os usuários são representados como nós em um grafo.
    • As amizades são arestas não direcionadas.
  • A Tarefa: Processar uma série de comandos para construir e consultar a rede.

A Representação 💾

Vamos usar uma Lista de Adjacência para armazenar o grafo.

É um array de listas. A lista no índice `i` armazena todos os amigos do usuário `i`.

// Amizades: (0,1), (0,2), (1,2)
adj = [
0:[1, 2],
1:[0, 2],
2:[0, 1],
3:[]
]

As Operações ⚙️

Você implementará quatro comandos:

  • add u v

    Adicionar uma amizade.

  • degree u

    Contar os amigos do usuário u.

  • isfriend u v

    Verificar se u e v são amigos.

  • count_greater x

    Contar usuários com mais de x amigos.